<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>哈希函数</title>
</head>
<body>
<script>
    //设计哈希函数
    //哈希函数作用：
    //          1.将字符串转化为较大的数字：hashCode
    //          2.将大数字压缩在一个较小的范围内
    function hashFunc(str,size) {
        //1.定义变量
        var hashCode = 0;

        //2.霍纳法则
        for (let i = 0; i < str.length; i++) {
            hashCode = 37*hashCode + str.charCodeAt(i);
        }

        //3.取余操作
        var index = hashCode % size;
        return index;
    }
    alert(hashFunc('abc',10)); //8
    alert(hashFunc('bcd',10)); //5
    alert(hashFunc('cde',10)); //2
    alert(hashFunc('nba',10)); //3
    alert(hashFunc('aaa',10)); //9

</script>
</body>
</html>